DevelopersIO 2021 Decade “今日からはじめるAWS運用(基礎から応用までじっくり学ぶシステム運用向けのAWSサービス)” 資料公開 #devio2021
こんにちはコカコーラ大好き、カジです。
2021年10月6日にクラスメソッド株式会社主催「DevelopersIO 2021 Decade」で
DevelopersIO 2021 Decade “今日からはじめるAWS運用(基礎から応用までじっくり学ぶシステム運用向けのAWSサービス)”
を発表しました。聞きに来ていただいたみなさま、ありがとうございました! 資料は最後にあります。
AWSサービスをいっぱい紹介しましたので、どれか1つでも持ち帰っていただきお役に立てれば幸いです。
セッション概要
お客様や自社の開発部門から、急に「次のシステムはAWSを使いたい」と言われ、AWSを運用しなければならない状況に直面し、慣れない部分が多いと思います。AWSのサービスは200以上あり、運用で利用すべきサービスが複数あります。 そんなAWSサービスを中心に、運用しているとあるあるな質問と回答で解説していきます。
何か1つでも活用いただければ幸いです。
動作がおかしい。調査してほしいのですが?
ログの有効化とログ保持期間
ログ設定の有効化とログ保持期限
- 障害発生時のトラブルシュートに役立つ
- ログの保持期限をS3へ設定し不要コスト削減
システムが利用するAWSサービスのログ
- CloudFront
- ELB
- Amazon RDS
- VPC Flow Log(必要に応じて)
- AWS WAFのLog(必要に応じて)
OS、アプリケーションログ
- CloudWatch Logs
- Fluentdなど
AWSの操作ログ
- AWS CloudTrail S3出力 *1
- AWS Config *1
*1 弊社メンバーズ加入時に最低限必要な設定でご提供
調査方法(Athena)
可視化
この時間に何か問題ありませんでした?サイトが遅いです
CloudWatch Dashboard
よくチェックする項目を一覧でグラフ参照できる(別途、監視システムを利用している方は対象外)
- ELBリクエスト数、エラー数など
- EC2 CPU Utilization、NetworkIn/NetworkOutなど
- RDS CPU Utilization、Database Connections、Latency、DBLoadなど
CloudWatch Dashboardの詳細はこちら
RDS Performance Insight
Performance Insightsのダッシュボードで時間がかかっているデーターベースへのクエリが分かる
Performance Insightsを利用できないインスタンスがある。 DB インスタンスクラス db.t2.micro、db.t2.small、db.t3.micro、db.t3.small ではサポートされていません。
私個人の対応方法
MySQLの場合、slow query logを出力しファイルをmysqldumpslowコマンドで分析
- 平均ロックタイムの長い順
- 平均実行時間の長い順
- 平均行数の多い順などなど・・・
X-Ray(分散トレーシング)
- サービスマップ
- タイムライン
DevOps Guru
機械学習 (ML) を利用し、メトリックの異常を運用イベントと相関させ、問題の発見や解決にサポートを提供
- ウェブアプリケーションのレイテンシー急上昇
- ディスクスペースの不足
- メモリリーク などなど…
関連するアプリケーションとインフラストラクチャの指標を相互に関連付けてグループ化
サーバにインストールされたミドルウェア一覧表ください
Systems Manager Inventory
AWS Systems Manager(SSM) インベントリは管理対象のインスタンスからメタデータを収集して、情報表示する機能
OSやアプリケーション、ネットワーク設定などの情報を収集
誤削除防止したいのですがどうすれば?
EC2の終了保護設定
インスタンスを選択した状態で、[アクション]-[インスタンスの設定]-[終了保護を変更]をクリック
ALBの削除保護設定
ロードバランサーを選択した状態で、[Description]タブで [Edit attributes]を選択し、[ロードバランサー属性の編集] ページで、[削除保護] の [有効] をクリック
RDSの削除保護設定
[インスタンスの変更]で[削除保護]を選択し、[すぐに適用] を クリック
CloudFormationの削除保護もあります。(割愛)
脆弱性管理してますか?
Amazon Inspector
Inspectorは脆弱性の棚卸しで利用するサービス
- EC2インスタンスにAmazon Inspectorエージェントをインストール
- ネットワーク到達性を診断
- プラットフォームの脆弱性を診断
潜在的なセキュリティ上の問題を発見するためのもの
セキュリティ評価の要約やスキャン結果で見つかった問題についてはPDF出力が可能
Elastic Container Registry Image Scanning
コンテナ内の脆弱性のスキャンできるサービス
- ECRのリポジトリを指定してスキャン
- ECRへのプッシュをトリガーに自動でスキャン
潜在的なセキュリティ上の問題を発見するためのもの セキュリティ評価の要約やスキャン結果で見つかった問題について概要表示
コスト最適化してる?
必要に応じて通知設定を検討ください
Trusted Advisor
AWS Trusted Advisorは、以下の5つの観点から、利用者のAWS環境をAWSが自動で精査し、推奨設定のお知らせをしてくれる機能
- コスト最適化
- パフォーマンス
- セキュリティ
- 耐障害性
- サービス制限
各監査項目チェックは3段階のステータスで状態
ダッシュボード上で一目で判別がしやすいように色分け
- Action recommended【赤】 : 推奨されるアクション
- Investigation recommended【黄】 : 調査を推奨
- No problems detected【緑】 : 問題検出無し
- Not Available【-】 : 非表示
AWS Compute Optimizer
EC2インスタンスやAuto Scaling Groupのメトリクスと設定データを機械学習で分析 コスト削減とパフォーマンス向上させるための最適なインスタンスサイズが提案されます。同じファミリー内のインスタンスサイズの提案だけでなく、別のファミリーの提案も行ってくれます。
AWS Compute Optimizerの分析対象 - CPU使用率 - メモリ使用率 (別途Cloudwatch Agentのインストールが必要) - ネットワーク受信 - ネットワーク送信 - ローカルディスクの入出力 (I/O)
Reserved Instances / Savings Plans
RI/SPはチケットのようなもので、RI と SP と呼ばれます。 一定期間の利用をコミットし割引の権利が得られる 正しく適用するためには条件に合致していることが必要
- システムが安定稼働してからの購入がオススメ
- インスタンスタイプが決まってから購入をオススメ
- 3~6ヶ月ぐらい稼働後に検討
システム間を接続したいです。どうすればいいの?
VPC Peering
2つのVPC間のトラフィックをルーティング可能
VPC Peering数が増えてきたら?
VPC Peering数によりルーティングテーブルや、Security Groupの管理も必要 個人的な感覚としてVPC Peeringでのフルメッシュ接続は5VPC程度までで、それ以上の場合は運用が困難 (VPCプレフィックスリストで少し楽になりますが…)
VPC Peeringは直接接続のVPC間のみ通信可能なため、以下の式でVPC Peering数を算出できる。
フルメッシュVPC Peering数=n(n-1)/2 (n=VPCの数)
- VPC6個:6(6-1)/2 =15個
- VPC10個:10(10-1)/2 =45個
Transit Gateway
複数のVPC間のトラフィックをルーティング可能 6VPC以上のフルメッシュなら構成がシンプルになる
通信できないのですが、なぜですか?
通信不可のときに調査すべきポイント
- セキュリティグループ
- ネットワークACL
- ルートテーブル
チェックを楽にするツールが...
VPC Reachability Analyzer
VPC内の接続性テストとトラブルシューティングを簡単にできるもの
AWSを利用していく上で重要なポイント
- 新AWSサービス・新機能の取り込み継続的な改善
- AWSのマネージドサービスを最大限に活用
- 見直し実施するための定期的なシステムロードマップ作成と予算確保
発表資料
発表動画
おまけ(時間の関係で紹介できなかったものを紹介)
配信されるメールについて
リソースの棚卸してますか?
IAMの棚卸しなど、必要ですよね。リソース棚卸し。 タグエディターとEC2 Global Viewが便利